package com.wyw.leetcode.learning.simple;

/**
 * leetcode topic 283
 * 移动0
 * @Author Mr Wu （yewen.wu.china@gmail.com）
 * @Date 2021/11/5 16:09
 */
public class Topic283 {
    public static void main(String[] args) {
        int[] nums = {0,-1,0,3,5,9,12};
//        int[] nums = {-1};
        moveZeroes(nums);
        System.out.println("");
    }

//    public static void moveZeroes(int[] nums) {
//        int a = 0;
//        int b = 1;
//
//        while(b < nums.length) {
//            if(nums[a] == 0) {
//                if(nums[b]!= 0) {
//                    nums[a] = nums[b];
//                    nums[b] = 0;
//                    a++;
//                    b++;
//                } else {
//                    b++;
//                }
//            } else{
//                a++;
//                b++;
//            }
//        }
//
//    }

    public static void moveZeroes(int[] nums) {
        int n = nums.length, left = 0, right = 0;
        while (right < n) {
            if (nums[right] != 0) {
                swap(nums, left, right);
                left++;
            }
            right++;
        }

    }

    public static void swap(int[] nums, int left, int right) {
        int temp = nums[left];
        nums[left] = nums[right];
        nums[right] = temp;
    }




}
